System and method for deploying application program components

ABSTRACT

A communication system includes a development sector for registering a plurality of wireless devices, a business sector for controlling utilization of an application program and for receiving application data, a service sector for deploying the application program and for providing the application data to the business sector in accordance with communication with at least one wireless device of the plurality; and a mobile sector comprising the plurality of wireless devices, each device for receiving the application program deployed by the service sector, executing the application program in response to the business sector, and communicating with the service sector to support provision of the application data to the business sector. The wireless device, such as a cell phone, personal digital assistant, or palm top computer may include an auxiliary device such as a bar code scanner, a magnetic stripe card reader, or a printer. The business sector or service sector may monitor or limit utilization of the auxiliary device. Deployment of application programs may be controlled by the business sector or the development sector by rendering an application program or auxiliary device available for use only after a particular time or after receipt of a message. Distributed processing application programs having components in the business, service, and mobile sectors may thereby be updated in an orderly manner. An application program on a wireless device may assist confirmation of an order made by a buyer via a web site. The wireless device is expected to be operated by the buyer. Fraud reporting is accomplished by comparing data obtained by registration of the wireless device with data provided in the confirmation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to U.S.patent application Ser. No. 10/929,098, filed Aug. 27, 2004, which is adivisional of application Ser. No. 09/779,713, U.S. Pat. No. 6,934,532,filed Feb. 8, 2001, which claims priority to U.S. Provisional PatentApplication Ser. No. 60/181,416, filed Feb. 9, 2000, by Paul D.Coppinger, Michael S. Klingen, and Rinaldo A. Spinella.

FIELD OF THE INVENTION

Embodiments of the present invention relate to communication systems,components, and methods operative with programmable wireless devices.

BACKGROUND OF THE INVENTION

Wireless communication technology has been used widely in systems anddevices for voice and data communication including conventional cellulartelephones, alphanumeric pagers, personal digital assistants (PDAs), andpalm-top computers, to name a few applications. A personal digitalassistant is a handheld computer that primarily serves as an organizerfor personal information. It generally includes at least a name andaddress database, to-do list, and note taker. PDAs are typically penbased and use a stylus to tap selections on menus and to enter printedcharacters. The PDA may include a small on-screen keyboard which istapped with the pen. Data is transferred between the PDA and aconventional desktop computer via a cable or wireless transmissionchannel (e.g., typically a radio or optical link). A characteristicdifference between a PDA and a palm-top computer is that the PDA uses apen while the palm-top typically uses a small keyboard.

Portable wireless devices including conventional cellular telephones,alphanumeric pagers, personal digital assistants (PDAs), and palm-topcomputers typically include one or more integrated circuits thatcooperate as a microprocessor that executes a program stored in memoryfor performing a majority of the built-in functions of the portablewireless device. Recently developed wireless devices permit a program tobe transferred via the wireless link (e.g., downloaded) for storage inthe memory and for execution as an application program. Such anapplication program may define unique displays for acquiring data inputby the user and provide for transfer of resulting data via the wirelesslink (e.g., upload) to a conventional desktop computer.

Application programs and data to be used by a wireless device may resideon a node of a conventional computer network (e.g., office computersystem network, client-server environment, intranet, internet, or theworld wide web). Such networks typically employ numerous personalcomputers allowing users graphical user interfaces (GUIs) for developingdata, developing programs, and for accomplishing conventional businesspurposes; several servers for supporting common computing tasks (e.g.,support for common access to file systems, database managers, dataprocessing computers, printers); and gateways for coupling the localnetwork to other systems not connectable to the local network because ofphysical limitations, differences in electrical signaling, anddifferences in communication technology (e.g., medium, protocol,bandwidth, security, redundancy, firewall implementation, etc.). Userstypically create data and programs for use on other nodes of a network(e.g., an intranet) and analyze data received therefrom usingconventional programs including program development environments,database application programs, report writers, browsers, distributedcomputing applications, and client-server applications. Due toidiosyncrasies of wireless communication and wireless devices, theseconventional programs (and networked computer program technology ingeneral) are not practical for use with wireless devices. Improvedwireless gateway technology is needed to better utilize wireless devicesin automated commercial transactions.

Conventional wireless devices have limited data input and outputcapabilities. Input and output capabilities for desktop computers areconventionally provided by cable-connected peripheral equipment.Conventional wireless devices are typically packaged for convenienthandheld use where auxiliary cable connections to the wireless deviceare undesirable. Without improved cooperation with peripheral devices,wireless devices are not suitable for use in automated commercialtransactions.

SUMMARY OF THE INVENTION

A method according to various aspects of the present invention may beused to develop software for use in wireless devices. Such a methodincludes: providing a web page to a browser that offers alternativetypes of wireless devices to be programmed or a platform independentdesignation for the wireless device; receiving from the browser aresponse that includes a designation of the subject device; providingone or more web pages offering a mechanism for associating functions toeach other in a sequence or parallel manner; providing one or more webpages offering a list of parametric values from which a selection can bemade; receiving at least one association between selected functions;receiving at least one parametric value; developing a program to performthe functions in accordance with the parametric value in an intermediateformat; translating the program from intermediate format into a formatto be executed by an application engine of a wireless device.

In alternate implementations of the above method, platform independencemay be presumed and the first two steps omitted. In anotherimplementation, steps reciting parametric value are omitted. In yetanother implementation, the intermediate format is omitted.

A method for registering a wireless device according to various aspectsof the present invention includes: providing a web page to a browser;receiving from the browser an identification of the wireless device; andstoring in a memory a record of the identification. In an alternateimplementation, the method further includes receiving from the browseran identification of an auxiliary device (e.g., a printer, a bar codescanner, a magnetic stripe reader, a smart card reader (contact orcontactless), or a combination of any of these); and storing in thememory and in association with the record, the identification of theauxiliary device. In yet another implementation, the method includesproviding an application engine coupled for execution by a processor ofthe wireless device. Providing may be by installing a preprogrammedmemory into the wireless device. Providing may otherwise be accomplishedby downloading into a memory of the wireless device.

A method according to various aspects of the present invention includes:registering a wireless device; enabling the wireless device to executean application engine; and transferring an application program to thewireless device over the wireless medium or through other directinterfaces. Further, the step of transferring may include receiving aninstruction directing transfer of the application program to a pluralityof wireless devices including the wireless device; and transferring theapplication program in turn to the wireless device. The original methodmay include the step of transferring a program to a server for executionto support communication between the wireless device and the server.

A method according to various aspects of the present invention includes:providing from a server a web page to a browser; receiving a responsefrom the browser for controlling execution of a program on a wirelessdevice; and providing a message from the server to the wireless devicethat effects the desired control of the program on the wireless device(e.g., starts a program, stops a program, modifies the execution of aprogram, or provides a value to a program). In this manner the operatingsystem (a program) of the wireless device may be controlled; or aprogram (other than the operating system) may be controlled.

BRIEF DESCRIPTION OF THE DRAWING

Embodiments of the present invention will now be further described withreference to the drawing, wherein like designations denote likeelements, and:

FIG. 1 is a functional block diagram of a communication system accordingto various aspects of the present invention;

FIG. 2 is a message sequence diagram for creating an account using thesystem of FIG. 1;

FIG. 3 is a message sequence diagram for registering a wireless deviceusing the system of FIG. 1;

FIG. 4 is a message sequence diagram for developing an applicationprogram for a type of wireless device used in the system of FIG. 1;

FIG. 5 is a message sequence diagram for publishing an applicationprogram to various wireless devices using the system of FIG. 1;

FIG. 6 is a message sequence diagram resulting from activating anapplication program at the wireless device in the system of FIG. 1;

FIG. 7 is a message sequence diagram for activating an applicationprogram in a wireless device from a browser of the system of FIG. 1;

FIG. 8 is a message sequence diagram for authorizing utilization of anauxiliary device with a wireless device of the system of FIG. 1;

FIG. 9 is a table of protocols which may be used for communication inthe system of FIG. 1;

FIG. 10 is a perspective view of an auxiliary device (e.g., a bar codescanner) in one implementation according to various aspects of thepresent invention;

FIG. 11 is a top view of the device of FIG. 10 looking toward the devicein the direction indicated by the arrow at A;

FIG. 12 is a bottom view of the device of FIG. 10 looking toward thedevice in the direction indicated by the arrow at B;

FIG. 13 is a side view of the device of FIG. 10 looking toward thedevice in the direction indicated by the arrow at C;

FIG. 14 is a side view of the device of FIG. 10 looking toward thedevice in the direction indicated by the arrow at C and showing theorientation of a PDA (e.g., Research In Motion of Waterloo, Canada,model RIM-950) when mounted together with the device as a unit;

FIG. 15 is a view of the flexible circuit substrate used within thedevice of FIG. 10; and

FIG. 16 is a message sequence diagram for confirming a paymentarrangement according to various aspects of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Conventional information systems have been based on data acquisition anddata reporting occurring at fixed locations by skilled employees. Forexample, an inventory control system that is responsive to data capturedat a point of sale is commonly operated by a trained cashier and managedby an inventory control clerk trained to generate various reports from asystem terminal at a fixed location. With the availability of networkdata communication among wireless devices (e.g., pagers and cellulartelephones equipped with Internet browsers) various innovativeinformation systems have been developed and deployed (e.g.,user-specified weather reporting and stock price reporting onalphanumeric pagers). In general, these systems utilize a specialpurpose application program installed in each wireless devicecooperating with a special purpose application program installed in oneor more servers through which information originates, or passes forstorage, analysis, or communication. The development, deployment,version management, and control of these special purpose programs hasbeen costly due in part, inter alia, to the large number of types ofwireless devices, the difficulty of integrating wireless communicationtechnology with other network communication technologies, and the systemdesign preference for centralized administration and control.

A system according to various aspects of the present invention solvesthe problems discussed above, inter alia, by providing registrationand/or authentication of wireless devices (and auxiliary devices whichmay be used in cooperation with wireless devices) and by providingorderly methods and/or mechanisms for developing, deploying, updating,and/or controlling the utilization of distributed processing applicationprograms which operate in part on wireless devices. Such applicationprograms may implement one or more classes of transactions described inTable 1.

TABLE 1 Class of Transactions Example Transactions Wireless device toone or more other Digital voice communication, conference wirelessdevices where exemplary wireless calls, call forwarding, serverlessemail, devices include programmable cellular PDA data synchronization,arranging telephones, PDAs, palm-top computers, meetings andmaintaining, personal (or pagers, and programmable radio frequencyobject related) data including, schedules of identification (RFID)devices. events, tracking the location of a wireless device, objecttracking, applications for radio frequency identification; Wirelessdevice or devices in Credit authorization from mobile location,communication with at least one server conventional email, access todatabases where an exemplary server may include a managed by others(e.g., access to an file system, a protocol conversion intranet, to theinternet, or to the World capability, and/or access to one or more WideWeb), unilateral placement of an networks. order, task delegation,announcements; Wireless device or devices in Automated commercialtransactions communication with more then one special involving creditor communication with purpose server. more than one payment (e.g.,supported by a first server) and delivery special purpose server ofgoods (e.g., supported by a second server): ordering goods for immediateor scheduled delivery; package tracking at check point, pick-up, ordelivery; posting changes to inventory, quality control databases,and/or financial accounts upon receiving from a supplier, presenting anorder, taking an order, or delivering product; receiving or deliveringinformation (e.g., supported by a third server) controlled by license;Automated commercial transactions involving credit or payment andprovision of services: pay- per-use information delivery systems (e.g.,financial aspects supported by a first server and information aspectssupported by a second server); transactions involving financial aspectsand other aspects including for example purchase and sale of stocks,bonds, commercial paper, and title transactions;

Systems for supporting the communication and data storage requirementsfor any of the above transactions may be described with reference to asystem having one or more functional groups of equipment herein calledsectors. Wireless devices and their cellular communication supportequipment may be designated respectively as a mobile sector incommunication with a broadcast sector. When more than one communicationmedium or protocol is used in the mobile sector, equipment withcorresponding capability in the broadcast sector may be arranged tooperate independently (e.g., for redundancy) or may be coupled forcommunication links that include more than one medium or more than oneprotocol. Put another way, the broadcast sector may include a networkcoupling separate stations and may include protocol translationfunctions or data storage functions that are part of each station ormanaged by one or more gateway servers or file servers. For transactionsthat utilize one or more servers, a service sector may be coupled to thebroadcast sector. In accordance with various aspects of the presentinvention, the service sector may include database management andapplication program support for such transactions. Further, whenparticular servers are not under common administrative control (e.g.,when a financial institutions servers and a product manufacturer'sservers are needed for a particular class of transactions) these may befunctionally grouped in respective finance and business sectors.Particular synergies are realized in systems of the present inventionwhen the service sector is coupled (exclusively or in combination withfinance and/or business sectors) to a development sector used, interalia, for developing and deploying application programs. Suchapplication programs may include conventional “client-server” technology(e.g., a wireless device is a “client” and a server is a “server”); mayinclude application programs that operate in isolation (e.g., acalculator for use on a wireless device); or may include “actor”technology where the wireless device and server may each act as both“client” and “server”. Each may include multiple simultaneous actors.

An example of a system of the type described above is shown in FIG. 1.System 100 includes business sector 110, service sector 120, broadcastsector 130, mobile sector 140, finance sector 150, and developmentsector 160, each with one or more sector component. Each sectorcomponent may include equipment of the type described in Table 2, thoughparticular subsystems, web clients, servers, stations, and devices maydiffer in the complement of installed software to be discussed below.Dashed lines in FIG. 1 indicate that each item may represent a pluralityof items cooperating (e.g., redundant or teamed) or operating so as tocarry out wholly independent operations (e.g., multiple simultaneous webclient operators, such as business Web client 114, and wireless deviceoperators, such as wireless ARDIS device 142) subject to design choicesfor supporting a predetermined computing capability. For example,several of each web client, such as business web client 114, may besimultaneously active performing requests or obtaining results whilesimultaneously several of each type of wireless device, such as wirelessARDIS device 142, is cooperating with other portions of system 100.Several of each type of sector may also be included in an implementationof system 100.

TABLE 2 Sector Component Description Subsystem (such as A subsystem mayinclude any one or more Transaction Subsystem conventional computers(e.g., (for scalable 152) computing) of the type marketed for highvolume transactional data processing, scientific data analysis,supercomputing), and/or dedicated small-office-home-office computerequipment. A subsystem may suitably include any combination ofconventional peripheral equipment (e.g., printers, scanners, specialpurpose processors, multimedia input/output devices, numerous userterminals, networks, etc.). A subsystem represents data processing forcentralized purposes, e.g., regional data center, corporate office,individual department, etc. Business administration applications (e.g.,accounting, inventory management, credit brokering, database management,providing suitable access to content, etc.) are generally supported on asubsystem. Subsystems may perform protocol conversions to linkapplication programs to the protocol used at the interface of the sectorin which the subsystem is employed. For example, conventional OpenSystems Interconnection (OSI) application layer protocols, e.g., CommonObject Request Broker Architecture (CORBA), Distributed Component ObjectModel (DCOM), Simple Mail Transfer Protocol (SMTP), Hypertext TransferProtocol (HTTP), File Transfer Protocol (FTP), Open DatabaseConnectivity (ODBC), and Java Database Connectivity (JDBC) may beconverted to accommodate the conventional Transmission ControlProtocol/Internet Protocol (TCP/IP) at a sector interface. Web client Aweb client may include a conventional (such as Business single usercomputer having (access to a Web Client 114) server via a network link.For example, a personal computer), desk-top computer, portable computermay have access to a server via a telephone modem, or an internetappliance. The web client may have any combination of conventionalperipherals including, for example, keyboard, mouse, monitor, filesystem (based on magnetic or optical disks and/or tape), printer, etc.When the web client is used with a web server (e.g., a conventionalinternet service provider's web server) the web client may access theinternet and World Wide Web using a conventional browser supportingprotocols consistent with TCP/IP (e.g., HTTP, FTP, and otherconventional OSI session layer protocols). A web client may supportconventional platform independent remote procedure calls and objectbrokering. For example, a web client may include a conventional JavaVirtual Machine for performing applets and/or support for performingconventional embedded objects. Server (such as Application A server mayinclude conventional (e.g., Server 122) scalable) computer equipment of(the type described above having the computing capabilities generallyexceeding the web client. A server's computing capabilities may also)exceed the capabilities of a subsystem in some demanding applicationsdepending on, inter alia, the response time that the server is expectedto provide, the number of simultaneous clients to be supported, theextent of administrative software operative that provides services tothe clients. Servers may have communication software for supporting oneor more links to web clients, subsystems, other servers, and stations.Servers may include several physical machines to implement security,limit access, or provide redundancy (e.g., a firewall, protocol gateway,etc.). A server may include supporting software for protocol conversionand platform independent object brokering. For example, a server mayinclude a conventional Internet Server Application Program Interface(ISAPI) gateway for performing Active Server Page (ASP), ColdFusionbrand development software by Allaire, and ISAPI application programs; aconventional common gateway interface (CGI) for performing anapplication with an interactive user interface with an operating system(e.g., a shell), a Practical Extraction and Reporting Language (Perl)application; a CGI application program; and/or an Apache brand modulegateway for performing a Personal Home Page (e.g., MOD PHP or MOD Perl)hypertext preprocessor application. Station (such as CDPD A station mayinclude any conventional Station 136) computer automated (communicationequipment for cooperating on a computer network on the) one hand and awireless network on the other hand. For example, a station may includeone or more network interfaces, routers, transmitters, receivers,repeaters, message store and forwarding controllers, protocolconverters, etc. Examples of conventional wireless networks includeMotient Corporation's proprietary ARDIS Network, and LM EricssonTelephone Company's proprietary Mobitex wireless packet data network,and Cellular Digital Packet Data (CDPD) networks. Wireless device (suchas A wireless device may include one or more Wireless Mobitex Devicemodules (preferably assembled to form a 144) single hand-held module)for operation by a single user. Power supply (e.g., a battery pack),data storage units) preprogrammed memory modules, input/outputperipherals, and the user interface may be combined into an integralunit as in conventional programmable cellular telephones, PDAs, palm-topcomputers, alphanumeric pagers, smart cards, and programmable radiofrequency identification (RFID) devices. Wireless devices performbuilt-in applications and may perform applications downloaded into thewireless device. In addition to supporting one or more wirelesscommunication protocols (e.g., the conventional wireless applicationprotocol (WAP)), the wireless device may include software for supportinghigher level OSI protocols or variants adapted for reliable andefficient operations (e.g., the conventional Wireless ApplicationProtocol Binary Extensible Markup Language (WBXML)). A wireless devicemay include support for more than one communication link (e.g., awireless link for normal operation and a wired link for programming thewireless device). Each link may be dedicated, temporary, shared, orindependent as discussed herein. Each link may be used for any protocolor message. For example, a device registration method as discussed belowmay include messages on either or both links.

A business sector provides data processing related to businessoperations. System 100 may support one or more business sectors (e.g.,independently owned and operated computer centers under separateadministration). A business sector may serve as a data source and/orrepository for one or more distributed processing application programsperformed at least in part by a programmable wireless device (DAPWs).For example, business sector 110 includes one or more business officesubsystems 112, business web clients 114, and business web servers 116.Business office subsystem 112, business web client 114, and business webserver 116 are respectively a subsystem, a web client, and a server ofthe type described above.

Each of these sector components may include one or more individualpieces of equipment for scalability, multiple simultaneous user support,reliability, etc. Links 115 and links at interface 119 may be in anyconfiguration including dedicated, temporary (e.g., dial up), shared(e.g., local area network (LAN), bused, or multiplexed), or independent(e.g., one link per pair of connections). In as much as business officesubsystem 112 and business web server 116 may perform the same orsimilar business functions, either one may be omitted in alternateimplementations of system 100. Business functions performed by subsystem112 and/or server 116 include for example support for shareholderservices, accounting, product sales, product marketing, productdevelopment, quality control, manufacturing automation and control,testing, order fulfillment, inventory management, shipping and receivingmanagement, or data warehousing. Conventional computer programs used inthese fields may be configured for receiving data from wireless devicesor for providing data to wireless devices, inter alia, usingconventional database technologies, web based programming, or discreteprogramming.

Subsystem 112 and server 116 may be linked at interface 119 to servicesector 120 using a conventional network communication protocol (e.g.,Hypertext Transfer Protocol (HTTP) on Transmission ControlProtocol/Internet Protocol (TCP/IP)). Similarly, interface 115, linkingbusiness web client 114 to server 116, may use the same protocol. Anycommunication technology may be used for interfaces 119 and 115 as maybe dictated by existing hardware and software currently used to form abusiness office subsystem.

Business web client 114 may include any conventional browser thatincludes a graphical user interface. Consequently, server 116 mayinclude any suitable conventional web server for interaction with anynumber of such browsers. Client 114 may be used by any operatorassociated with business sector 110, either at a business office whereother of the equipment of business sector 110 is located, or at anyremote location. For example, web client 114 may be a laptop computercoupled to a modem for dial up (link 115) access to server 116. Businesssector operators using either the terminals (not shown) coupled tosubsystem 112 and/or web clients 114 may access, upload, download, copy,and modify information stored at service sector 120. Further, businesssector operators may activate and control software (e.g., distributedprocessing application programs) performed at least in part by servicesector 120; and activate or control software performed by one or morewireless devices of mobile sector 140. Generally, the broadcast sector130 is invisible to these operators. However status and maintenanceoperations may be performed by business sector operators. Systems andsoftware between the business sector operator and other parts of system100 assure that operations consistent with the conventional Open SystemsInterconnection (OSI) application layer are available. In support of ahigh volume of automated commercial transactions, programs written tooperate at the OSI application layer may be installed and performed onsubsystem 112, web client 114, and/or web server 116.

A service sector provides communication among other sectors supportingoperations at the OSI application layer, where those sectors include aconventional computer network and a wireless network. In addition, aservice sector may perform portions of a DAPW. With conventional scalingtechnology, a service sector may support simultaneous performance of amultitude of different DAPWs; a multitude of simultaneous, independentsessions of the same DAPW; or any combination. A service sector may alsoinclude servers for functions supportive of DAPWs in general. Forexample, a service sector may include servers that operate as clearinghouses for commercial credit and payment transactions; clearing housesfor providers of licensed content; and servers that support DAPWdevelopment. Any network technology may be used within a service sectorto couple servers for data communication.

For example, service sector 120 includes application server 122,wireless gateway server 124, payment server 125, and content server 126,coupled together by network 123. Application server 122, wirelessgateway server 124, payment server 125, and content server 126 are eachscalable servers of the type discussed above. Network 123 may includeany conventional network technology (e.g., local area network (LAN),wide area network (WAN), metropolitan area network (MAN), intranet, orthe Internet). Network 123 is preferably one or more redundant LANsoperative using protocols consistent with TCP/IP.

An application server performs one or more DAPWs as discussed above. Forexample, application server 122 includes a conventional operatingsystem, communication software, and Web server software. In addition,application server 122 may include scripts (e.g., prepared usingconventional ColdFusion brand development software by Allaire) toaccomplish message origination, formatting, reception, decomposition,parsing, and exception analysis functions discussed below according tothe present invention.

A wireless gateway server performs conventional gateway operations. Awireless gateway server may include platform independent software (e.g.,scripts written using conventional ColdFusion technology) to coordinatethe orderly and timely deployment of portions of one or more DAPWs tonumerous wireless devices; or to coordinate the orderly activation ofone or more capabilities of numerous wireless devices. For example, theoperating system and programs performed by server 124 supportcommunication at the OSI application layer, accommodating differencesbetween the protocol of network 123 and the protocol used at interface139 between service sector 120 and broadcast sector 130. In addition toprotocol conversion, content may be compressed (or uncompressed) and maybe encrypted (or decrypted) to assure efficient, reliable, and securecommunication to (or from) mobile sector 140.

A payment server performs conventional payment clearinghouse functions(e.g., routing batched payments at suitable times to appropriate financesectors, obtaining and providing credit verifications, maintainingtransaction hold lists, providing warnings for predetermined types orsequences of transactions, etc.). For example, payment server 125supports communication between a financial sector and service sector120. A payment server may also perform proxy transaction as discussedbelow with reference to FIG. 16.

The structure and functions of business sector and a finance sector arecompletely analogous, with the finance functions being a type ofbusiness function carried out under administration independent of theadministration of other business sectors. For example, finance sector150 includes transaction subsystem 152 (analogous to business officesubsystem 112), customer web client 154 (analogous to business webclient 114), and merchant web server 156 (analogous to business webserver 116). Interface 159 between finance sector 150 and service sector120 is analogous in structure and function to interface 119 discussedabove. Thus, payment server 125 may include support for HTTP and TCP/IPprotocols for interface 159 to enable the finance sector 150 tocooperate with the mobile sector 140 at the level of the OSI applicationlayer. Transaction subsystem 152 may include a commercial credit cardprocessor and clearing house (e.g., when not cleared at payment server125) that provides electronic credit card transactions (e.g.,authentication, debits, credit, and transfers to merchant accounts).

A content server communicates with other servers in a service sector toprovide access to content (using push or pull technology). A contentserver may also include functions for cooperation with a developmentsector, including facilitating the development, deployment, maintenance,or controlled operation of DAPWs. A content server may includeconventional protocol conversion to permit any development sector tointerface to a service sector using OSI application layer technology.For example, content server 126 may include a conventional operatingsystem, file system, and communication software. In addition, contentserver 126 may include scripts (e.g., prepared using conventionalColdFusion technology) to accomplish message origination, formatting,reception, decomposition, parsing, and exception analysis functionsaccording to the present invention.

A development sector may facilitate one or more of: the rapiddevelopment of DAPWs, registering wireless devices to operate with aparticular DAPW (e.g., a particular type, such as Mobitex, or aparticular instance of a type, such as a wireless Mobitex device havinga particular purpose or identification), and bringing into existencedata processing structures for facilitating the cooperation of a DAPWwith components of a service sector such as a payment processor and/or abusiness/finance sector (e.g., a particular subsystem, with particularlocations, or with particular operator accounts). For example,development sector 160 includes registrar web client 162 and author webclient 164 each of which being a web client as discussed above.Registrar web client 162 and author web client 164 may support, atinterface 169 to service sector 120, OSI application layer protocols orprotocols consistent with HTTP and TCP/IP. When content server 126provides dial-up access, registrar web client 162 and author web client164 may be identical as to structure and as to installed software (e.g.,simply include a browser and supporting software).

Note that any web client of system 100 may include sufficient hardwareand software to be operated in place of any other web client, providedthat network access to the appropriate server is permitted. For example,in an implementation where business web server 116, merchant web server156, and content server 126 are each accessible via the internet (e.g.,suitable passwords and accounts presumed to be in place), then the sameoperator could in theory perform any of the web client functionsdescribed herein with respect to various different sectors.

A broadcast sector responds to messages received from a service sectorand directs them to a suitable station to be transmitted into thewireless medium; and receives messages originating at any wirelessdevice in a mobile sector and passes them to the service sector.Functions of protocols at the OSI physical layer, data link layer andnetwork layer may be accomplished by stations in a broadcast sector. Inthe event that the system is to support wireless devices in differentmedia or with different lower level protocols (e.g., differentvariations at the OSI data link layer and below), a broadcast sector mayinclude a station for each medium or protocol.

For example, broadcast sector 130 includes an ARDIS station 132, aMobitex station 134, and a Cellular Digital Packet Data (CDPD) station136 each of which is a station as discussed above. ARDIS station 132accomplishes communication with wireless devices, such as wireless ARDISdevice 142, that are compatible with the conventional ARDIS proprietaryradio protocol. Mobitex station 134 accomplishes communication withwireless devices, such as wireless Mobitex device 144, that arecompatible with the conventional Mobitex proprietary packet switchedsystem for mobile data communication. CDPD station 136 accomplishescommunication with wireless devices, such as wireless Cellular DigitalPacket Data (CDPD) device 146, that are compatible with the conventionalCellular Digital Packet Data (CDPD) protocol. In other implementationsof broadcast sector 130, any other conventional broadcast media andprotocols may be used. Each station 132, 134, and 136 may communicatewith service sector 120 using the same or a different protocol. In apreferred implementation, compressed messages containing WirelessApplication Protocol Binary Extensible Markup Language (WBXML) inaccordance with Wireless Application Protocol (WAP) are exchanged atinterface 139 between service sector 120 and broadcast sector 130.

An application program to be performed by a wireless device (APW) may bedeveloped, installed in particular wireless devices, and activatedaccording to various aspects of the present invention. When theapplication is to be developed as a distributed processing applicationprogram to be performed at least in part by a wireless device (DAPW),development, installation of components of the program in particularservers and particular wireless devices, and activation to assure properoperation may also be performed in accordance with various aspects ofthe present invention. An APW or DAPW may present a sequence of forms toan operator of a wireless device (e.g., 142, 144, or 146) and/or anoperator of a client (e.g., 114, 143, 162, or 164). These forms are usedfor storing and moving information in data structures (e.g. messages) inboth directions throughout system 100. Blank or filled-in forms mayoriginate on the wireless device (e.g., when the wireless device is usedfor data acquisition) or other systems (e.g., when the wireless devicereceives a page from the Internet).

An example APW or DAPW may provide up to date information to a customerwho receives on-site repair services. When a customer requests on-siteservice (e.g., by placing a telephone call or filling in a form providedvia the World Wide Web), a dispatcher (e.g., a person or process ofbusiness sector 110) may identify and inform the nearest serviceman tothe site of the customer's request. The serviceman may receiveinformation or notification via a wireless device carried by theserviceman.

When on-site, inventory items brought by the serviceman may be providedto the customer (e.g., installed, or consumed during the repair servicesprovided by the serviceman). These items may be immediately debited froman inventory database maintained in business section 110 as aconsequence of the serviceman operating the wireless device to scan abarcode on each provided inventory item. The serviceman's time orservices may be identified as being provided to the customer in the sameor additional forms sent from the wireless device to business section110. From this information (and possibly as triggered by the wirelessdevice) business sector 110 (or another sector) may provide an invoiceprinted at the customer site (e.g., on a computer having access to theInternet or on a peripheral communicating with the wireless device).Credit card information or details of payment may be sent from thewireless device.

Finally, the customer may review updated information on any computerhaving access to the Internet. Such information may include servicehistory as logged and reported by business section 110 or accountbalances and transactions as logged and reported by finance sector 150.Such a review may as a practical matter be confirmed before theserviceman leaves the site, due in part to the inherent speeds ofnetwork communication as described above.

Other examples of APWs and DAPWs include processes and business methodsadapted for use on wireless devices (e.g., adapted to overcome thelimitations of a wireless device in comparison to a desktop computer);or adapted to take advantage of the capabilities of a wireless device(e.g., immediate access to or provision of information, or cooperationwith other portions of system 100) or the nature of usage of a wirelessdevice (e.g., likely to be within reach or earshot of an adult). Usefulexamples of such processes and methods include a personal email service,a personal information service, a personal wallet service, and apersonal payment service. These services may be implemented as discussedbelow with reference to FIG. 4 in combination with any conventionalprogramming techniques. An implementation of a personal payment servicemay include the functions described with reference to FIG. 16.

A personal email service may include conventional “follow me” functionsso that email received at any of several email accounts is received anddispatched from one central account; operation according to userspecified rules for email routing to desired account(s) (e.g., work,personal, or mobile email accounts); conversion of incompatible messageformats including formats of attachments; facilitating the forwarding ofmessages that may have attachments without transfer and unintended datamanipulation of attachments to/from the wireless device; and applyingfilters to block transfer of messages to the wireless device. Emailrouting rules may facilitate changes in underlying accounts, forexample, the work account may be revised in a routing rule in the eventof a change in employment. Conversion of formats may also limit thevolume of data transferred to/from the wireless device to reducecommunication costs based on volume. Filters may avoid costly transfersof undesired email (e.g., solicitations, or junk email) to a wirelessdevice.

Personal information services may include presentation, in a suitableform, of information retrieved from the Internet or World Wide Web suchas news, stock quotes, weather, and sports results. Information servicesmay also include cooperation with e-commerce providers to supportshopping and purchasing functions.

A personal wallet service may integrate with the shopping servicediscussed above to facilitate payment for purchases. In addition,storage and access to information may be facilitated such as for keepingan address book, an appointment calendar, credit card information anduse, a record of expenses, to-do lists, notations (e.g., memos), and acalculator. Information may be stored on the wireless device or on anystorage device of system 100.

Information provided in connection with any of the services may bepresented with promotional material of a content or service provider.For example, the wallet may be designated with a trademark of anInternet Service Provider (e.g., America OnLine).

Registration of a wireless device for use with an APW or DAPW serves asa prerequisite, inter alia, for purposes of later limiting operation ofthe APW or DAPW (e.g., in a pay-per-use arrangement), providing securityfor the data obtained or reported via the APW or DAPW, and/or forassuring reliable operations of the wireless device with auxiliarydevices and with the overall system in which it is used (e.g., limitinginterference by malfunctioning devices, software version control,equipment calibration certification, tracking the history of uses for awireless device). A method for registering a particular wireless devicemay include any steps of recording information about the particularwireless device and its permitted uses. For example, in system 100,registrar web client 162 may begin a session with content server 126 inwhich a sequence of messages accomplish registration by opening anaccount and recording information in association with that account.

In the message sequence diagrams of FIGS. 2 through 8, messages mayconform to any suitable format. In alternate implementations, theinformation conveyed by a sequence of messages may accomplish the samepurpose as described herein, though the messages there may be in adifferent time sequence, may be combined or divided, may be presented inbatch, or may vary in other conventional manners.

In sequence of messages 200 of FIG. 2, registrar web client 162 hostsbrowse process 202. Browse process 202 may be any conventional browser,for example, Internet Explorer marketed by Microsoft Corporation.Content server 126, which includes hardware and/or software supportingconventional web server functions and software supporting conventionaldatabase server functions, hosts (respectively) CreateAcct process 204(e.g., a ColdFusion script) and DbManager process 206 (e.g., aconventional program that manages a database using or standard querylanguage such as SQL Server marketed by Microsoft Corporation).

To register a wireless device, an account is created. To create anaccount, an operator of client 162 requests a create account (CA) page(e.g., in Hypertext Markup Language (HTML)) from server 126 (at T250).When the CA page is provided by server 126 (T252) and displayed bybrowse process 202, the operator may perform any conventional inputoperations (e.g., operate any control or fill in any form) to specify anidentification for a new account. For example, if each wireless devicehas a unique manufacturer, model number, and serial number, then anycombination of this information (e.g., manufacturer code,concatenations, etc.) may be used as the account identifier andtransferred to content server 126 (T254) as a new account data. Withincontent server 126, a query is made of the database to assure therequested new account identifier is unique, and if so, a new record isallocated and the identifier associated with it. Other data may beposted to the new record as derived from the new account data (T256) orin subsequent requests and responses (not shown). Such other informationmay include the date, the time of day, the operator's identification, apassword to be used by the user of the wireless device, type and subtypeof wireless device (e.g., cell phone with email capability), features ofthe wireless device not implicated by the model number (e.g., alreadyinstalled software, memory size, etc.), the wireless address of thedevice (e.g., a telephone number, network node address, IP address,email address, or group address). When the record is complete, DbManagerprocess 206 responds with an acknowledgement message (T258) toCreateAcct process 204. The response may provide a system assignedpassword. Whereupon, CreateAcct process 204 provides to browse process202 a page containing a notice of pass/fail for the registration as awhole (T260). Any errors at content server 126 may result in a failnotice.

Registration of a wireless device may include a method for registeringperformed by the wireless device to be registered. For example, onemethod includes the steps of (a) sending a request for registration to aserver having an account; and (b) sending indicia of an identificationof the wireless device to the server so that the server can store theindicia of identification in association with the account. In avariation, the method also includes the steps of (c) receiving software(e.g., data, configuration values for registers or memory, executableinstructions, or an applet) from the server in accordance with therequest; and (d) determining the indicia of identification in accordancewith the software. The software may perform instructions that determinecharacteristics of the wireless device and its current configuration,including determine memory capacity, serial number, or an identification(e.g., username or password) of the user (or intended user) of thewireless device. Results obtained by the software may be sent to theserver. For example, the server may determine from the characteristicswhether the wireless device is capable of performing a particular DAPW.The server may enable the wireless device to operate on a particularwireless network by sending a message to a server of the network toidentify in association, one or more of the wireless deviceidentification, characteristics of the wireless device, identificationof a user (or intended user), and identification of the account. Thewireless device may also attempt to access and use the particularwireless network by sending a message via a wireless interface of thewireless device to verify effective registration, diagnose a problemwith registration, or report results of tests of the operation of thewireless device and/or access to the particular wireless network.

A registration process may be initiated from a wireless device. Aregistration request may be initiated by the device and then forwardedto its download interface or its HTTP interface. Any of theadministrative processes discussed herein may use remote registration tofacilitate remote administration of any part of system 100 from awireless device.

In yet another implementation, registration may be implemented to occuras part of the download of initial software into the wireless device. Inthis scenario, the downloaded software when operated may detect that ithas not yet been registered and transmit a registration request foritself.

A computer (e.g., a workstation, a server, a web client, or part ofdevelopment sector 160) may automatically inspect each wireless deviceto which it is coupled for communication and transmit a registrationrequest for that device. Coupling may be by cable connection(s) or via anetwork as discussed herein. Registration of such wireless devices maybe simultaneous (e.g., synchronized) or merely concurrent (e.g.,independent yet possibly overlapping common operations). Operations mayinclude registration and initialization of registers in the wirelessdevice to values directed by the computer.

A method for preparing a wireless device for performing part of an APWor DAPW may be performed by a computer as discussed above. Such a methodmay include the steps of (a) establishing communication via a link tothe wireless device; (b) receiving a first message via the link, thefirst message including an identification from the wireless device; (c)sending a second message via the link to permit the wireless device toperform the part of the distributed processing application program; and(d) sending a third message in accordance with the indicia ofidentification to a server of a wireless network, the third message forenabling use of the wireless network by the wireless device forperforming part of the distributed processing application program. Thewireless device may initiate establishment of communication via the link(e.g., on connection of a cable or operation of a user interface of thewireless device). The method may further include sending software to thewireless device via the link. Such software may operate to prepare aportion of the first message. The software or the second message mayinclude an application engine as discussed herein or part of thedistributed processing application program. The software may betransferred to the wireless device via the wireless network or via thelink.

In the same session as discussed above with reference to sequence 200 orat any convenient time after the account has been successfully opened,information particular to a wireless device (or a new use of a wirelessdevice) may be recorded. For example, in message sequence 300 of FIG. 3,content server 126 hosts register device process 302 (e.g., a ColdFusionscript). Further, the operator may facilitate communication between aparticular wireless device 146 and registrar web client 162 (e.g., bybringing the devices within communicating range or by connecting a cablebetween suitable interfaces of each unit). For example, the operator maymake a request for the device registration (DR) page in any conventionalmanner (T350). In response, RegisterDevice process 302 provides the DRpage (e.g., in HTML) (T352). The operator performs any conventionalinput operations (e.g., operate any control or fill in any form) toidentify the appropriate account identifier and may also provide otherregistration data as discussed above (T354). When the account isverified as properly identified by query from RegisterDevice process 302(T356) and status response Y/N from DbManager process 206 (T358),RegisterDevice process sends a command message containing suitableregistration data to be posted by DbManager process 206 (T360). Ifsuccessful, DbManager process 206 replies with an acknowledgement (T362)and RegisterDevice process 302 provides a notice of pass/fail to browseprocess 202 (T364).

According to various aspects of the present invention, the notice atT364 may facilitate invocation of a process for communicating betweenregistrar web client 162 and the particular wireless device beingregistered. For example, when the wireless device has an electronicallyaccessible identification, such may be read and transferred to DbManagerprocess 206 to be recorded in association with the account. Tests may beperformed to flag that the provided identification is suspect or invalidand suitable messages in addition to the notice may be provided to theoperator. As another example, a pass notice may include a conventionalembedded object 306 to be performed by browse process 202. Securityissues may be resolved in any conventional manner (e.g., use ofAuthentiCode software marketed by Microsoft Corporation to successfullyvalidate authenticity and certification of the embedded object and itssupplier, may be a prerequisite to continuing the message sequence).

When a pass notice is issued by RegisterDevice 302, a particularembedded object 306 may also be selected to be included with thetransmission of the pass notice by cooperation of RegisterDevice process302 and DbManager process 206. In a message sequence (not shown),RegisterDevice process 302, based on any suitable combination of theregistration data (T354), obtains from DbManager 206 the embedded object306 suitable for use with the wireless device being considered forregistration.

Embedded object 306 facilitates transfer of software from registrar webclient 162 to registered wireless devices, such as 146 as follows.Conventional wireless device 146 (e.g., a Wireless Handheld PDA modelRIM 950 marketed by Research In Motion) hosts operating system OpSys 304enabling download for the purpose of programming the programmablewireless device. Different types of wireless devices operate withdifferent download protocols. Embedded object 306 (suitable for use withthe particular wireless device 146) commands the download port be openedfor receiving an application program (T366). If successful, OpSys 304responds with an acknowledgement message (T368). Embedded object 306then begins transfer of a program (e.g., a file) that includesApplEngine process 508, with capabilities as discussed below (T370). Onreceipt of the entire program, OpSys 304 replies with an acknowledgementmessage (T372). In an alternate implementation, the program istransferred in blocks, each block having a cyclic redundancy check(CRC). An acknowledgment (ACK) message is sent upon each successfulblock transfer, thus enabling block retransmission to correcttransmission error and improve efficiency and reliability. In stillanother implementation, Embedded object 306 may be configured withknowledge of the electronically accessible identification so thatEmbedded object 306 in other messages (not shown) may assure accuratecommunication (e.g., when communication is not by connected cable, otherwireless devices may be within range, making the desired communicationunreliable).

An APW or DAPW may be developed, according to various aspects of thepresent invention, as a consequence of a sequence of messages. Forexample, a variety of predetermined functions may be presented to thedeveloper from which the developer may specify a selected sequence offunctions. When it is desirable to provide parametric values to controlthe operation of particular functions, the developer may further specifyappropriate parametric values. In a preferred implementation, thegraphical user interface provided by a conventional browser allows thedeveloper to perform any conventional input operations (e.g., operateany control or fill in any form) to make these selections andspecifications.

For example, message sequence 400 of FIG. 4 depicts the development ofan APW or DAPW. Message sequence 400 is accomplished by author webclient 164 (hosting browse process 402) and content server 126 (hostingan application development process ApplDvmtHost 404 and a DbManagerprocess 206). The developer (e.g., any client operator) initially causesbrowse process 402 to request a development page (T450). ApplDvmtHostprocess 404 provides the requested development page (e.g., in HTML)(T452).

The development page may include items and groups of items, such as aselection list (T454). A selection list may include a list of functions,a list of suggested sequences of functions, a list of suggested valuesfor parameters for each function, a blank form to be filled in, adrag-and-drop work surface by which a sequence can be definedgraphically (e.g., connecting symbols with lines to show alternativeflow of control), or any combination of these items and groups. Helptext may be available for review or provided within a context of thedeveloper's inputs. Suggestions and help text may reduce or eliminatethe training an operator may find desirable before attempting to buildan APW or DAPW. For an APW or DAPW of ordinary complexity, requests forpages and suitable delivery of pages may be repeated. For each page, thedeveloper may specify form contents (T456) and/or selected items (T458)as well as any other operator input as discussed above. Applicationdevelopment process 404 may diagnose syntactic, semantic and/ororganizational error; and advise the developer with an appropriatenotice (not shown). Application development process 404 may also presentany suitable query to DbManager process 206 for information that maytend to assist the developer. For example, APWs and DAPWs developed bythe same developer, for the same type of wireless device, or havingsimilar program structure, organization, semantics, or syntax may beobtained for reference, copying, developing customized blank forms, orpreparing other aids for program development. As a result of theselections and other inputs provided by the developer, the applicationprogram so developed is capable of coordinating any data transferoperation (e.g., a fully supported OSI application layer messagingfunction) between and among any one or class of wireless devices inmobile sector 140, any one or more servers of service sector 120, anyserver or client of business sector 110 (e.g., by specifying an IPaddress, email address, database field, Lotus Notes group name, etc.),and any server or client of finance sector 150. The information thatidentifies the addresses of nodes in these sectors may be specified bythe developer, or a reference to such information may be specified sothat this information may easily be kept up to date in severalapplication programs when such addresses change, new addresses are to beused in parallel, or addresses are to be superceded or deleted. Addressmaintenance (revising the physical address to be used in place of areference) may be accomplished in any conventional browser/serverenvironment with suitable software (e.g., a database manager and webserver) for example as performed on application server 122.

When the developer indicates (e.g., by program syntax, or by operationof any suitable control) that program development is completed,ApplDvmtHost process 404 sends indicia of the completed program toDbManager process 206 in any convenient manner. One or more messages maybe employed resulting in one or more records of the underlying databasefile(s) to be created, updated, deleted, linked together, unlinked, orappended. For a DAPW (e.g., the server side process), such indicia willinclude a program for the process Appl.Ws (T460) to be performed byapplication server 122 (e.g., a designated application server, group ofservers, or an indication that any server or group of servers may beused). For either an APW (e.g., an independent program or an actor of amultiple actor program) or for a DAPW (e.g., the client side process),such indicia will include a program for the process Appl.Wc (T462) to beperformed by a wireless device (e.g., a designated type, group, orparticular wireless device). If storage by DbManager process 206 issuccessful, an acknowledgement is provided to ApplDvmtHost process 404(T464) and a suitable notice is provided for display to the developer bybrowse process 402 (T468).

According to aspects of the present invention, the deployment andrendering available for use of numerous software components permitsuniversal introduction of an APW or facilitates the wide-spreadintroduction of a DAPW. Because the link to each wireless device is notreadily obtained or maintained (as compared to a reliable dedicatedhardwire link that generally is available instantly and for an extendeduninterrupted duration), deployment is scheduled and then accomplishedpiecemeal until each wireless device of mobile sector 140 (and eachrequisite server of service sector 120) has acknowledged receipt of theintended application program. Further, the rendering available for useof numerous software components is accomplished to promote an orderlytransition from operation of system 100 in an initial configuration to anext configuration (e.g., initial installation of system capability, orcoordinated upgrade).

For example, message sequence 500 of FIG. 5 depicts the deploymentprocess and the process of rendering software components available foruse. Message sequence 500 is accomplished by author web client 164hosting browse process 402; content server 126 hosting a definepublication process, DefnPubl 502 (e.g., a ColdFusion script), and anapplication program compiler process, Compile 504 (e.g., a ColdFusionscript); wireless gateway server 124 hosting publication process,Publish 506 (e.g., a ColdFusion script); and wireless device 146 hostingapplication engine process, ApplEngine 508 (as downloaded, for example,by message sequence 300).

An operator of author web client 164 may begin a deployment process byrequesting a publication page via browse process 402 (T550). Inresponse, DefnPubl process 502 provides a Publish page (T552) in amanner as discussed above. The operator then may perform anyconventional input operations (e.g., operate any control or fill in anyform) to specify parameters (T554) defining the deployment and/oractivation of an APW or DAPW. Parameters may suitably include theidentification of the APW or DAPW to be deployed, the identity orcharacteristics of wireless devices in mobile sector 140 to receive theAPW or component of the DAPW (e.g., all devices of a specified type, orall identified by a specified group address, or only those identified bya list of device addresses, those that have been active or areidentified as being active during a specified period of time in thepast, present, or future, those already having a particular APW or DAPWof a specified name, version or having been activated during a specifiedperiod of time, etc.). DefnPubl process 502, on receipt of theparameters (which may be on one or more pages following additionalrequests not shown), determines whether the desired program componentshave been prepared for deployment. For each type of software componentto be deployed in mobile sector 140 that has not been so prepared,DefnPubl process 502 requests Compile process 504 to compile thatcomponent (T556).

Compilation may include translating and/or compressing. For example,Compile process 504 receives program components from the databasemanaged by process DbManager process 206 (e.g., by interprocesscommunication, not shown) in the conventional Wireless Extensible MarkupLanguage (WXML) format and compiles them to provide conventionalWireless Application Protocol Binary Extensible Markup Language (WBXML)format. The WBXML format is more compact and more efficient to executeby a wireless device than the WXML format. For each component to bedeployed in service sector 120, DefnPubl process 502 may invoke anysuitable pre-deployment process (e.g., none, optimization, translation,etc.).

After compilation, Compile process 504 provides the compiled program(e.g., Appl.Wc) to Publish process 506 (T558). DefnPubl process 502provides publication parameters (which may include, or be modified inaccordance with, other data recalled via DbManager process 206, notshown) to Publish process 506 (T560). On receipt of both the compiledprogram and the publication parameters, Publish process 506 provides anotice of publication requested back to DefnPubl process 502 (T562).Notice of scheduled publication is then provided by DefnPubl process 502back to the operator via browse process 402 (T564). To support statusinquiries, DefnPubl process 502 directs DbManager process 206 to postthe current publication status (e.g., date and time publication wasrequested) suitably identified to the requested deployment (T566).

At any convenient time and from time to time thereafter, Publish process506 establishes one or more links to wireless devices, such as wirelessdevice 146, determined to be part of the deployment target group.Publish process 506 then transfers a copy of the compiled programAppl.Wc to such wireless devices. Any message sequence between Publishprocess 506 and ApplEngine process 508 may be used to make the transfer,since the link between Publish process 506 and ApplEngine 508 is notnecessarily used for standardized protocols. Preferably, the protocolused (T568 and T570) may closely resemble the protocol used to downloadat steps T370 and T372. The acknowledgement (T570) sent to Publishprocess 506 at the conclusion of successful downloading is postedagainst the list of wireless devices in the target group. When allwireless devices in the target group have acknowledged receipt of theprogram Appl.Wc, Publish process 506 provides notice of completedpublication to DefnPubl process 502 (T572). DefnPubl process 502 thendirects DbManager process 206 to post revised status of publication(T574). At any time and from time to time, any operator of author webclient 164 browse process 402 may obtain current status of all or anyidentified publication using request, query, and response messages (T576through T582) passed through DefnPubl process 502 for action byDbManager process 206.

An application, such as Appl.Wc, once published to a wireless device,such as 146, may become immediately available for use; may becomeavailable for use beginning at a specified time or event; and may bespecified to cease being available for use at a specified time, uponlapse of a time period from first use or from time of download.Differences in activation time that develop due to differences in timebases in individual wireless devices may be accommodated by systemdesign or by any conventional time synchronization technology, asapplied to wireless devices.

If an application is available for use as described above, activationmay be initiated by the user of the wireless device (e.g., device 146)or by an operator (e.g., of a business sector web client 114).Activation by a user of wireless device 146 may proceed as follows. Whenthe operating system 304 of a wireless device 146 includes ApplEngineprocess 508, then OpSys process 304, ApplEngine process 508, and Appl.Wcprocess cooperate to run Appl.Wc process. For example, ApplEngine 508may include an interpreter for WBXML when Appl.Wc is maintained forexecution in that format. When Appl.Wc process directs use of a wirelessdevice's display, keyboard (if any), or other auxiliary device,ApplEngine process 508 cooperates with OpSys process 304 to provide asuitable result. Use of platform independent constructs of WXML andWBXML may have the effect of providing different appearing displays anddifferent operating keyboard and auxiliary devices; however, thedifferences are expected to be so minor as to not interfere with userinteraction with the functions of process Appl.Wc.

An exemplary message sequence 600 of FIG. 6 may result from activationby user of wireless device 146. Message sequence 600 is accomplished bybusiness web client 114 hosting browse process 602; Business web server116 hosting ApplSupport process 604; application server 122 hostingAppl.Ws process 606; wireless gateway server 124 hosting Bridge process608; and wireless device 146 hosting Appl.Wc process 610. Whenactivated, Appl.Wc 610 may at any specified time or from time to timeprovide a data message logically intended for business web server 116. Amessage provided by Appl.Wc process 610 may be received (by virtue oftransparent operation of station 136) by wireless gateway server 124 forprotocol translation by Bridge process 608 (T650). Upon completion ofthe protocol translation, Bridge process 608 forms an appropriatemessage (e.g., with translated contents) to Appl.Ws process 606 (T652).Appl.Ws process 606 directs any suitable action to be taken byApplSupport process 604 (e.g., posting of data, analysis, reportgeneration, announcement of data arrival, warning for data out of range,etc.) (T654). At any time and from time to time, an operator of businessweb client 114 may, via browse process 602, request (T656) and obtain(T658) a report that may include or be prepared in accordance with thedata as provided by wireless device 146. Table 3 provides examples ofthe data conveyed in message sequence 600. In addition, any analysis,summarization, statistics, or extrapolation based on any combination ofdata described in Table 3 may also be data used in message sequence 600.

TABLE 3 Data Purpose Data entered by an operator of the wireless WhenAppl.Wc 610 provides a form or device states a question wireless devicefor response (e.g., multiple choice response), the data entered by thewireless device operator may be supplemented by the state of the Appl.Wc610 (e.g., query identification, form number, etc.) so as to simplifyaccurate posting or further analysis by Appl.Ws process 606 or byApplSupport process 604. Platform irregularities may be accommodated byAppl.Ws process 606 to simplify operation of ApplSupport process 604.Data measured, determined, or identified This data may include batteryby OpSys 304, ApplEngine 508, or Appl. characteristics, time of day, ordate, Wc 610 accountings of utilization by what application program hasbeen utilized, market research (e.g., location of the device vs. time ofday or date) or operations research (e.g., accountings of data typesencountered during use: email addresses, telephone numbers, web sitesvisited, identity of other cooperating wireless devices, etc.) Datameasured, determined, or identified This data may include (e.g., alongwith during use of an auxiliary device time of day or date scanned): barcodes cooperating with the wireless device, scanned, magnetic stripesread and/or including for example, a bar code scanner, written, receiptsor checks printed, or the a magnetic stripe card reader, a receipt orcontents for or results from messages check printer, or a smart card orradio exchanged with a smart card or, a other frequency identification(RFID) device RFID device. interrogator.

Activation of an application program in any identifiable group ofwireless devices or in any particular wireless device may be initiatedby operation of any web client. For example, operation of processAppl.Wc in wireless device 146 is accomplished by message sequence 700of FIG. 7, which involves the same processes described with reference toFIG. 6, except that wireless gateway server 124 in sequence 700 hostsActivate process 702 (e.g., a ColdFusion script). An operator ofbusiness web client 114 begins the sequence by requesting aWirelessServer (WS) page from ApplSupport process 604 (T750). Inresponse, that process provides the requested page (T752). The operatormay perform any conventional input operations (e.g., operate any controlor fill in any form) to specify parameters defining the invocation andactivation of Appl.Wc 610 (T754). These parameters may be any of theparameters discussed above with reference to defining a deployment oractivation task. ApplSupport process 604 then forwards a request foractivation of Appl.Wc 610 to Appl.Ws process 606 (T756).

To simplify designating a group of wireless devices, application server122 may maintain a cross reference list (i.e., a map) derived fromregistration and publication data maintained by DbManager process 206.One or more requests suitably prepared in accordance with such crossreference lists may be sent to Activate process 702 (T758). Due tofactors discussed above with reference to publication, the activation ofnumerous wireless devices is accomplished in a scheduled manner.Therefore, when the request is noted, Activate process 702 responds witha notice that the activation has been scheduled (T760). This notice isforwarded back to be presented to the operator of browse process 602(T762 and T764).

At any suitable time and from time to time, Activate process 702establishes communication with one of the wireless devices 146 in therequested list (i.e., the target list). Upon each such link beingestablished, Activate process 702 directs OpSys 304 and/or ApplEngine508 to run Appl.Wc process 610 (T766). The resulting message sequence(T768 to T778) is analogous to message sequence 600 discussed above.

It is not necessary for an application program to post data back to abusiness sector server or subsystem. For example, an application programwhen activated may simply accomplish the delivery of a message;activation of one or more features; emission of audio or visual notice,warning, or entertainment; or deactivation of one or more features. Asanother example, activation may be accompanied by data intended to bestored in the wireless device for use by the wireless device. A ratetable for sales transactions or a patch to an application program may bepublished using the activation mechanism. Further, activation (orpublication) may accomplish modifying the contents of memory in anauxiliary device coupled to the wireless device.

Operation of a wireless device with one or more auxiliary devices iscontrolled according to various aspects of the present invention. Amessage sequence may render available for use an identified one or groupof wireless devices in combination with an identified one or group ofauxiliary devices. Availability may begin at a specified time or event,proceed for a specified duration measured from the specified time orfrom the time availability specifications were made, and may beterminated upon a specified event. For example, message sequence 800 ofFIG. 8 depicts auxiliary device usage control. Message sequence 800 isaccomplished by registrar web client 162 hosting browse process 202;content server 126 hosting an auxiliary registration process,RegisterAux 804 (e.g., a ColdFusion script) and a DbManager process 206;wireless gateway server 124 hosting Bridge process 608, wireless device146 hosting Appl.Wc process 610, and auxiliary device 802 (any devicedescribed in Table 3 above).

Auxiliary device 802 may be uniquely identified using an electronicallyaccessible identification. Further, auxiliary device 802 may includepersistent memory of the type used to store ApplEngine 508 and Appl.Wcprogram 160 in wireless device 146 (e.g., flash electrically erasableprogrammable read-only memory (EEPROM), battery backed complementarymetal-oxide semiconductor random access memory (CMOS RAM), etc.). Amessage protocol similar to that used to download a compiled program(T568 and T570) may be extended to designate destination memory in anyidentified auxiliary device.

Authorization for rendering an auxiliary device available may be begunby an operator of registrar web client 162 by requesting anauthorization page via browse process 202 (T850). In response to such arequest, RegisterAux process 804 provides the requested page (T852). Theoperator may perform any conventional input operations (e.g., operateany control or fill in any form) to specify authorization data asdiscussed above. A message conveying authorization data is then sent toRegisterAux process 804 (T854). RegisterAux process 804 then requestsverification of the identifications used in the authentication data (AD)by sending one or more suitable queries to DbManager process 206 (T856).If the identifications of the wireless devices are known and theidentifications of the auxiliary devices are either known or areotherwise valid for registration. DbManager process 206 responds with anacknowledgement (ACK) (T858). RegisterAux process 804 then directsDbManager process 206 to post the authorization data (and any supportingauxiliary device registration data) (T860).

At any time and from time to time, Appl.Wc process 610 may inquire as towhether it may continue to use auxiliary device 802 by sending anauthorization request to Bridge process 608 (T862). Bridge process 608provides protocol conversion as discussed above and forwards acorresponding request to AuthSupport process 806 (e.g., a ColdFusionscript hosted by Content server 126) (T864). In response to the requestand after determining the identification of the auxiliary device 802 andthe wireless device 146 from the authorization request, via one or morequeries to DbManager 206 (not shown), AuthSupport process 806 maycalculate one or more values (e.g., a nonce) from a first algorithmknown to correspond to a second algorithm stored in either wirelessdevice 146 or auxiliary device 802. Each nonce, when communicatedthrough Bridge process 608 (T866) and to Appl.Wc 610 (T868), enables averification test to be run in wireless device 146. When wireless device146 using the second algorithm determines a value matching the noncereceived from AuthSupport process 806, continued use of the auxiliarydevice 802 may proceed. Otherwise use with this wireless device 146 isdisabled.

When more than one nonce is provided in a single message, each nonce isused in turn when an authentication is determined to again be necessaryor desirable. When the wireless device 146 has no more nonces, themessage sequence T862 through T868 is repeated. A nonce may expire and anew nonce may be required based on utilization of auxiliary device 802.For example, a predetermined number of bar code scans could be an eventthat triggers the expiration of a nonce. Application programs, such asAppl.Wc 610, attempting to use auxiliary device 802 but unaware of nonceoperation, will be prevented from using auxiliary device 802.

A program having a replacement ApplEngine process may be downloaded to awireless device using the ApplEngine 508 already installed.

ApplEngine processes may have protocol support for any number of layersof the OSI model limited by storage capacity in the wireless device andoperating speed considerations. The OSI model of communication layers900 is described in FIG. 9. Various conventional protocols are listed inassociation with each layer.

The OSI Model 900 includes a physical layer 901, a data link layer 902,a network layer 903, a transport layer 904, a session layer 905, apresentation layer 906, and an application layer 907. An implementationused for communication via the Internet includes a network layer 908(functionally corresponding generally to layers 901 and 902), aninternet layer 909 (corresponding generally to layer 903), a transportlayer (corresponding generally to layer 904), and an application layer911 (corresponding generally to layers 905, functionally 906, and 907).

Physical layer 901 is responsible for passing bits onto and receivingthem from the connecting medium. Physical layer 901 has no understandingof the meaning of the bits, but deals with electrical and mechanicalcharacteristics of the signals and signaling methods.

Data link layer 902 is responsible for node to node validity andintegrity of the transmission. The transmitted bits are divided intoframes. Physical layer 901 and data link layer 902 are required forevery type of communications.

Data link layer 902 and physical layer 901 may suitably includefunctions compatible with Ethernet protocol (IEEE 802.3), High-LevelData Link Control (HDLC) protocol, IEEE 1394 serial bus protocol, andserial protocol RS-232 using RS-422 line drivers.

Network layer 903, and Internet layer 910 correspondingly establish theroute between the sending and receiving stations. The node to nodefunction of data link layer 902 is extended across the entire networkbecause a routable protocol contains a network address in addition to astation address. Network layer 903 may suitably include functionscompatible with protocols such as the X.25 protocol, adopted as astandard by the Consultative Committee for International Telegraph andTelephone (CCITT), Simple Network Management Protocol (SNMP), and theconventional Internet protocol (IP).

Transport layer 904 is responsible for overall end to end validity andintegrity of the transmission. Data link layer 902 is only responsiblefor delivering packets from one node to another. The transport layer 904includes detection of missing packets. For example, if a 12 MB file issent; all packets of the 12 MB file are expected to eventually bereceived. Transport layer 904 suitably includes functions compatiblewith the conventional transmission control program (TCP) protocol.

Session layer 905 provides coordination of the communications in anorderly manner. Session layer 905 determines one-way or two-waycommunications and manages dialogue between both parties. For example,session layer functions make sure that the previous request has beenfulfilled before the next request is sent. Session layer 905 may marksignificant parts of the transmitted data with checkpoints to allow forfast recovery in the event of a connection failure.

Presentation layer 906 negotiates and manages the way that data isrepresented and encoded, when the data is transmitted between differenttypes of computer systems. Presentation layer 906 may be used forencryption and decryption, translating between character encodings(e.g., ASCII and EBCDIC), and translating between numeric formats (e.g.,floating point binary formats).

Application layer 907 defines the language and syntax that programs useto communicate with other programs for performing functions including,for example, issuing commands to obtain data (e.g., a page) from aservice; opening, closing, reading, and writing files located on adifferent node; transferring e-mail message; executing programs (e.g.,tasks) on a different mode; and obtaining directory information aboutnetwork resources. A wireless device 146, having application layer 907capabilities, may support processes (e.g., in ApplEngine 508) forsimulating any conventional file system in the memory of wireless device146 (or auxiliary device 802.

Applications layer 907 may suitably include functions compatible withcommon gateway interface (CGI), Internet Server Application ProgramInterface (ISAPI), and module level Open Database Connectivity (ODBC),Java Database Connectivity (JDBC), Common Object Request BrokerArchitecture (CORBA), Distributed Component Object Model (DCOM), SimpleMail Transfer Protocol (SMTP), File Transfer Protocol (FTP), ExtensibleMarkup Language (XML), Hypertext Markup Language (HTML), WirelessExtensible Markup Language (WXML), Wireless Markup Language (WML),Wireless Application Protocol Binary Extensible Markup Language (WBXML),wireless application protocol (WAP), Hypertext Transfer Protocol (HTTP),Secure Sockets Layer (SSL) protocol, and Wireless Transport LayerSecurity (WTLS) protocol.

System 100 may be operated using any family of protocols. Althoughoperation is described for applications layer protocol support, analternate implementation provides no more than session layer support foreconomies of processing power (and consequent cost savings) which may besuitable for less complex APWs and DAPWs.

Database tables used in one exemplary implementation of a databaseaccessed by DbManager process 206 include files, records, and fieldnames described in Table 4. Table 4 includes a description of thecontent of an exemplary record of each file (i.e., database table).

TABLE 4 File Name and Field Names of each Record Description ACCOUNTSAccount number may be a key value. Login account number Name mayidentify an operator having account type access to this account. Companylogin name corresponds to the primary contact for this password account.Accounting by the payment server company may provide transaction basedbillable first name amounts to be billed to the company last nameassociated with wireless devices used in address those transactions.Several wireless devices city may use the same account. state zip phonefax e-mail address DEVICE One record for every registered wirelessdevice ID device in the mobile sector. Device ID may network ID be a keyvalue. Network address may be device type ID used with network ID touniquely network address communicate with a device. The routing statusfunction of the wireless gateway server is company responsive to networkID and network first name address to route the message from the lastname wireless company gateway server to an address appropriate stationof the broadcast sector. city Status may facilitate enabling anddisabling state use of this device in system 100. Company zip and fieldsfollowing Company (as used in phone this record) may specify a primarycontact fax for this device. The user's name (as email address specifiedin this record) may be used for marketing other products to this user.DEVICE GROUP Group ID may be a key value. Account group ID number may beused to join a device group account number to a suitable account record.Name may be name a description of the group of devices. DEVICE - DEVICEThe same device may be in any number of GROUP device groups. device IDdescription DEVICE TYPE Device type ID may be a key value. device typeID Description describes the device type (e.g., description model RIM850 marketed by Research in Motion). NETWORK Network ID may be a keyvalue. Name network ID may describe the network maintenance nameorganization (e.g., American Mobile). A protocol ID second gatewayaddress may specify a fail gateway address 1 over capability. gatewayaddress 2 PROTOCOL The name of the protocol may be the name protocol IDof a principal protocol ID supplier of name equipment compatible withthat protocol (e.g., Mobitex). NETWORK - DEVICE Any number of networksmay use the same TYPE device type. network ID device type ID PROTOCOL -DEVICE A device type may support any number of TYPE protocols. protocolID device type ID FORM The value of the action field directs action formID when the form is submitted (as when a name completed form issubmitted by an operator account ID of a wireless device performingAppl.Wc). status For example, in a preferred action implementation, thisfield status retains the value as a URL in accordance with the syntaxaction defined in RFC 1738. Schemes such as HTTP and FTP may be used.Additional schemes are specified (e.g., CORBA or DCOM) followed by thevalues needed to address a node using that protocol. The name fieldprovides a human readable name for the form. Whether a form is active orobsolete may be indicated by the status field. FORM ELEMENT Values inthe order field identify the element ID placement of the element in asequence of order elements in a form. form ID name element type elementlength default value

A wireless device, such as wireless device 146, may be used with aperipheral as a unit in accordance with various aspects of the presentinvention. As discussed above, such a peripheral may be included in anauxiliary device, such as auxiliary device 802. Several peripheralfunctions may be implemented in one auxiliary device. For example,auxiliary device 802 may include a bar code scanner and a magneticstripe card reader. Peripheral functions include data acquisitionfunctions (e.g., reading a bar code, reading a magnetic stripe, readingfrom a contact smart card, reading from a contactless smart card,receiving from an infrared optical link, receiving a signal from a formon the screen (modulation of the CRT beam of a computer monitor or TV)and output functions (e.g., printing on provided paper (check blank),printing on internally supplied paper (receipt), providing an infraredoptical link signal (for controlling a consumer product), providing aradio signal to be received by a smart card or radio frequencyidentification (RFID) device).

To facilitate use of a wireless device (e.g., a PDA) with an auxiliarydevice that includes one or more of the peripheral functions describedabove, the wireless device may be retained in mechanical communicationwith the auxiliary device. Communication between the wireless device andcircuits performing the peripheral functions may be accomplished byelectrical conductors, electromagnetic link (e.g., magnetic or radio),or optical link (e.g., IR or visible). When the auxiliary deviceprovides power to the wireless device, electrical conductors arepreferred. Attaching and releasing the wireless device from theauxiliary device may be accomplished utilizing the locking function or acable connector on the wireless device.

For example, an auxiliary device 1000 of FIGS. 10-14 includes a cavity1011 formed by an outer wall 1020, and a base 1030 in which a connector1022 is mounted. Connector 1022 provides a locking mechanism intended tohold a mating connector at points 1026 and 1028. In auxiliary device1000, the locking mechanism provides alignment for a mating electricalconnector (e.g., part of PDA 1400, FIG. 14) and provides a latch forretaining PDA 1400 in cavity 1011. PDA 1400 is retained in cavity 1011in addition by a lip 1021 on portions of outer wall 1020. Enclosedwithin auxiliary device 1000 is a battery (e.g., behind cover 1031 inbase 1030), a flexible circuit substrate, and a conventional scannermodule 1040 (e.g., model Pico 923 marketed by Symbol Technologies,Inc.).

A PDA 1400 (e.g., model RIM 950) is installed in cavity 1011 by pressingit against base 1020 and mating the connectors 1022 until the lockingmechanism engages. After installation, the two devices become onephysical unit that may be operated with one hand or held with two hands.In operation, a beam of light sweeps through the solid angle indicatedby beams 1010 to detect a conventional bar code symbol within detectionrange. The beams are emitted under PDA 1400 and point away from theoperator in normal use. The center of gravity of the combined unit (duein part to the location of the battery near base 1030) is centered andlocated toward the base of PDA 1400 permitting a reliable grasp by theoperator.

Auxiliary device 1000 described above may include a flexible circuitsubstrate. The flexible circuit substrate may provide connection to allelectrical components of the auxiliary device. The substrate mayeliminate the necessity of a connector mounted on the substrate. Thesubstrate itself may be suitable for insertion into a connector (e.g., azero insertion force connector). For example, substrate 1500 of FIG. 15includes tabs 1510 and 1512 for solder connection to the battery, tab1514 for solder connection to connector 1022, and tab 1516 to beinserted into a zero-insertion force connector provided with the scannermodule. Region 1518 of flexible substrate 1500 provides space forcomponents (e.g., integrated circuits and analog components) andsuitable printed circuit conductors. Substrate 1500 may be folded on thefold line 1520 when assembled into auxiliary advice 1000.

Commands directed to a PDA according to the present invention mayinclude all conventional commands (e.g., handled by the OpSys program ofthe PDA or other conventional software) and may include additionalcommands (e.g., handled by the ApplEngine and/or Appl.Wc programs) toaccomplish writing data into memory of the PDA, writing data into amemory of the auxiliary device, controlling peripheral functions,reading data acquired by the auxiliary device, conducting or controllinga protocol utilizing a link (e.g., RFID, infrared, magnetic, etc.)established by the auxiliary device, or combinations of these features.Some of these commands have been discussed above with reference to stepsT366, and T370 (FIG. 3); T568 (FIG. 5); T766 (FIG. 7); and T868 (FIG.8).

A method for confirming a payment arrangement, according to variousaspects of the present invention, may include one or more of thefollowing steps: providing, in response to an order page, indicia of atrusted server address and indicia of a reply address; requesting orderconfirmation and/or indicia identifying an account to be debited bycommunicating with a wireless application program; receiving aconfirmation that includes information stored in a wireless device; andreporting an unintended use of an account in response to receiving anegative confirmation from a wireless application program. The wirelessapplication program may have access to stored indicia identifying theaccount to be debited, identifying the wireless device, and/oridentifying the user of the wireless device that may be communicatedwith the confirmation.

For example, message sequence 1600 of FIG. 16 includes processesperformed by a user and by processors that individually or collectivelycooperate to perform methods as discussed above. In method 1600, a useroperates customer web client 154 and customer wireless device 142.Processors that respond to actions by the user include merchant webserver 156, payment server 125, transaction subsystem 152, and wirelessgateway 124. Customer web client 154 supports Browse process 1601.Merchant web server 156 supports Shopping process 1602. Payment server125 supports Proxy process 1604. Transaction subsystem 152 supportsDebit process 1606 and Trace process 1608. Wireless gateway server 124supports Bridge process 608 (as discussed above). And, customer wirelessdevice 142 supports Appl.Wc process 610 (as discussed above).

To place a confirmed order, the user directs Browse process 1601 in anyconventional manner to request a page on which the user may specify whatis to be ordered (T1602). For example, Browse process 1601 may provide aURL to a particular merchant web server 156 as a network node. Therequest may be a command in HTTP.

Shopping process 1602 responds to the request for an order page bysupplying an order page (e.g., a page in HTML having a form for userinput describing the order) (T1604). The order page may providedescriptions of alternate forms of payment, including payment bywireless confirmation.

Browse process 1601, in response to user input, provides an order toshopping process 1602 (T1606). Provision may be by HTTP command for CGIsupport in Shopping process 1602. User input may include the subjectmatter of the order (e.g., identifying the goods or services,quantities, delivery date and address, etc.); indicia PMT. TYPEidentifying that payment is expected to be confirmed by wirelessconfirmation; indicia ADDR1 identifying a payment server and/or Proxyprocess (e.g., an email address, the URL of payment server 125, or anobject reference); indicia ADDR2 identifying how the user is to receiveinformation from the payment server and/or Proxy process; indiciaidentifying a wireless device or Appl.Wc process (e.g., a telephonenumber, an email address, the URL of wireless device 142, or an objectreference); and indicia identifying the user of the wireless device forthe purpose of order confirmation (e.g., a username, password, query,and/or nonce).

Shopping process 1602, in response to receiving the order (T1606), sendsinformation to payment server 125 suitable for confirming payment and/orposting a payment transaction. For example, Shopping process 1602 mayprovide a message (T1608) directed as indicated by ADDR1 and received byProxy process 1604. The message may include indicia PMT. TYPE (e.g.,when not implied by other information of the message); indicia ADDR2 (asdiscussed above); indicia identifying a wireless device or Appl.Wcprocess (as discussed above); and indicia identifying the user of thewireless device for the purpose of order confirmation (as discussedabove). Preferably, the wireless device and the user intended forconfirmation are already known to payment server 125 as a result ofregistration of the particular wireless device 142 as discussed above.For example, registration data received as discussed with reference tostep T360 may include indicia of ADDR2; and DbManager process 206 mayrespond to a query on ADDR2 to provide wireless device and useridentification.

On receipt of such information from Shopping process 1602, changes oradditions to wireless device registration may be initiated.

Proxy process 1604 receives the message discussed above as provided byShopping process 1602 (T1608) and sends a message requesting aconfirmation to wireless gateway 124 (T1610) that, by operation ofBridge process 608, causes a message (e.g., in a different protocol) tobe sent by Bridge process 608 to Appl.Wc process 610 of customerwireless device 142 (T1612). The request for confirmation may includeindicia suitable for describing the order, indicia suitable forconfirming that wireless device 142 is intended to be used for thisparticular confirmation, indicia suitable for confirming that aconfirmation from the current user of wireless device 142 is valid, andinformation to be analyzed by Appl.Wc process 610. For example, Appl.Wcprocess 610 may determine that the message received (T1612) is suitablefor proceeding with confirmation (e.g., that confirmation is enabled bya suitable nonce received with (or prior to receiving) the message) ordetermine that the message is intended to be confirmed by the currentuser of the wireless device (e.g., by comparing indicia identifying theintended user with indicia identifying the current user). Indiciaidentifying the current user may be obtained when Appl.Wc process 610presents a request for information (e.g., username, password, answer toa question) and receives user input that is consistent with an expectedresponse. The expected response may be determined by Appl.Wc process 610with reference to data or an algorithm transferred to wireless device142 upon registration. The expected response may be determined from datareceived with message T1612.

Preferably, Appl.Wc process 610 may present a description of the orderderived from the received request for confirmation and ask for a yes/noinput from the user. Appl.Wc process 610 may then send a message (T1614)via Bridge process 608 to Proxy process 1604 (T1616). Such a message mayinclude indicia CONF TYPE of confirmation (e.g., a one-bit data itemindicating confirmed or denied) and indicia ID identifying theresponding wireless device and/or user (e.g., as provided by the user orby Appl.Wc as discussed above) for validation by Proxy process 1604.

When a valid user and wireless device provide indicia of orderconfirmation (e.g., CONF TYPE) indicating the order is confirmed, Proxyprocess 1604 sends a request to debit the identified account to Debitprocess 1606 (T1618); and Debit process 1604 responds withacknowledgement ACK (T1620). The request for debit may include creditcard account number, name, expiration date, merchant name, merchant'sdescription of the order, and payment amount. This information isprovided to Proxy process 1604 in part by Shopping process 1602 (T1608)and in part by DbManager process 206 (T360) as discussed above withreference to registration. Because the user's account information may betransferred to service sector 120 prior to the first order confirmationand thereafter used for any number of subsequent order confirmations,message sequence 1600 includes transfer of account information betweentrustworthy servers (e.g., 125 and 152), thereby limiting access toinformation that could be used for unintended financial transactions.Because Appl.Wc process may be updated at any time as discussed above,the method of identifying the wireless device and its user may be maderesistant to tampering.

Proxy process 1604 then sends a notice describing whether payment wassuccessfully made (e.g., PMT. OK) to Shopping process 1602 (T1622).Using indicia ADDR2 for user notification, Shopping process 1602 thensends a notice to Browse process 1601 (T1624).

When a valid user and wireless device provide indicia of orderconfirmation (e.g., CONF TYPE) indicating the order is denied (or in theabsence of expected communication or a determination of invalidity),Proxy process 1604 sends a notice of possible fraud to Trace process1608 (T1626). Trace process 1608 responds with acknowledgement ACK(T1628). The notice of possible fraud may include credit card accountnumber, name, expiration date, merchant name, merchant's description ofthe order, payment amount, indicia ID of the wireless device and userattempting confirmation, and user registration data. This information isprovided to Trace process 1608 in part by Shopping process 1602 (T1608),in part by Appl.Wc process 610, and in part by DbManager process 206(T360) as discussed above with reference to registration. Indicia oforder confirmation may have distinguishing values for (a) the order isrecognized as valid by the user and confirmed, (b) the order isrecognized as having been initiated by the user but is denied due toerror or change of plans, (c) the order is recognized as being notinitiated by the user and is denied to avoid a transaction that the userdid not intend (e.g., initiated by an unauthorized person or automatedprocess). In case (c), system 100 (particularly those relevantcomponents and portions of message sequence 1600) provides notice ofcircumstances that could be attempted fraud where early detection mayprevent consummation of this or future transactions having similarcharacteristics.

Proxy process 1604 also sends a notice via Bridge process 608 (T1630) toAppl.Wc process 610 (T1632) to the effect that notice of possible fraudwas reported. Further, a summary of requests for (and consequences of)requests for confirmation (T1610) initiated by Proxy process 1604 may beprepared by Proxy process 1604 and provided in any conventional mannerto wireless device 142. Proxy process 1604 may determine with referenceto registration data (T360) or any suitable posting of data to thedatabase managed by DbManager 206 (e.g., by customer web client 154 orcustomer wireless device 142) that requests for confirmation by wirelessdevice are not desired (e.g., the user prefers no such traffic) or notpermitted (e.g., the user's account is not paid in full). Requests forconfirmation received from Shopping process 1602 (T1608) may be ignored,logged, or acknowledged with a suitable denial.

The foregoing description discusses preferred embodiments of the presentinvention which may be changed or modified without departing from thescope of the present invention as defined in the claims. While for thesake of clarity of description, several specific embodiments of theinvention have been described, the scope of the invention is intended tobe measured by the claims as set forth below.

What is claimed is:
 1. A method for deploying an application program towireless devices, the method comprising the steps of: identifying aplurality of wireless devices registered to operate with the applicationprogram; determining a plurality of parameters identifyingcharacteristics of the wireless devices to receive the applicationprogram; publishing the application program to the plurality of wirelessdevices in accordance with at least one determined parameter identifyingcharacteristics of the wireless devices to receive the applicationprogram; and rendering the application program available for use by eachof the plurality of wireless devices.
 2. The method of claim 1 whereinthe determined parameter identifies wireless devices having a specifieddevice type.
 3. The method of claim 1 wherein the determined parameteridentifies wireless devices having a specified address.
 4. The method ofclaim 1 wherein the determined parameter identifies wireless devicesidentified as being active during a specified period of time.
 5. Themethod of claim 1 wherein the determined parameter identifies wirelessdevices already having an application program of a specified name. 6.The method of claim 1 wherein the determined parameter identifieswireless devices already having a specified version of a particularapplication program.
 7. The method of claim 1 wherein the determinedparameter identifies wireless devices already having an applicationprogram that has been activated during a specified period of time. 8.The method of claim 1 wherein the step of rendering the applicationprogram available for use comprises the steps of compiling theapplication program and transferring a copy of the compiled applicationprogram to the multiple wireless devices.
 9. The method of claim 1wherein the application program is a distributed application program.10. A computer-implemented system including computer-executable code fordeploying an application program to wireless devices, the systemcomprising: means for identifying a plurality of wireless devicesregistered to operate with the application program; a first serverdetermining at least one specified parameter identifying characteristicsof the wireless devices to receive the application program; and a secondserver publishing the application program to the plurality of wirelessdevices and rendering the application program available for use by eachof the plurality of wireless devices.
 11. The system of claim 10 whereinthe application program is a distributed application program.
 12. Thesystem of claim 10 wherein the determined parameter identifies wirelessdevices having a specified device type.
 13. The system of claim 10wherein the determined parameter identifies wireless devices having aspecified address.
 14. The system of claim 10 wherein the determinedparameter identifies wireless devices identified as being active duringa specified period of time.
 15. The system of claim 10 wherein thedetermined parameter identifies wireless devices already having anapplication program of a specified name.
 16. The system of claim 10wherein the determined parameter identifies wireless devices alreadyhaving a specified version of a particular application program.
 17. Thesystem of claim 10 wherein the determined parameter identifies wirelessdevices already having an application program that has been activatedduring a specified period of time.
 18. The system of claim 10 whereinthe first server is a content server.
 19. The system of claim 10 whereinthe second server is a wireless gateway server.